﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Green.ObjectPickUper
{
    public interface IObjectPickUper
    {
        /// <summary>
        /// 继承基类
        /// </summary>
        Type BaseType
        {
            get;
            set;
        }

        /// <summary>
        /// 是否实现INotifyPropertyChanged
        /// </summary>
        bool IsImplementINotifyPropertyChanged
        {
            get;
            set;
        }
        /// <summary>
        /// 是wcf对象？
        /// </summary>
        bool IsSOAObject
        {
            get;
            set;
        }

        /// <summary>
        /// 根据Type提取对象
        /// </summary>
        /// <param name="pickedType">提取依据类</param>
        /// <param name="pickName">后缀</param>
        /// <returns></returns>
        string PickUp(Type pickedType, string suffix);
        /// <summary>
        /// 根据Type提取对象
        /// </summary>
        /// <typeparam name="T">提取依据类</typeparam>
        /// <param name="pickName">后缀</param>
        /// <returns></returns>
        string PickUp<T>(string suffix);
        /// <summary>
        /// 根据Type集合提取对象，加载后缀,返回 => (类型名称,代码)
        /// </summary>
        /// <param name="pickedType">提取依据类集合</param>
        /// <param name="suffix">后缀</后缀param>
        /// <returns>(类型名称,代码)</returns>
        Dictionary<string, string> PickUp(IList<Type> pickedType, string suffix);
    }
}
